Over the last ten years, the number of computing devices that are capable of rendering video to users has increased tremendously. Not long ago, a user needed a high-end personal computer or computer workstation to render digital video at an acceptable frame rate. Today, improvements in video graphics hardware technology have made video rendering available to the masses. Internet-connected devices are now capable of rendering video at a quality level that is acceptable to many users.
During this same time period, broadband Internet service has become widely available. Users with broadband Internet service can download large amounts of data, including video, to their Internet-connected devices at very low cost. Once a user begins downloading a large video file, streaming technology built into programs for viewing digital video allows users to view the beginning of the video while later portions of the same video are still being downloaded. Together, these technical innovations have greatly increased users' appetites for downloading video content.
Additionally, in the last few years, specialized hardware and software for generating digital video has become much more accessible to average consumers. Many inexpensive digital cameras are capable of capturing segments of digital video and some specialized but inexpensive devices are even capable of capturing high definition digital video that can be readily uploaded to the Internet. These technical and economic innovations have dramatically increased users' abilities to produce downloadable video content. Many popular websites cater to such interests by providing an easy means for users to upload their videos and make them publicly available for others to view, thereby creating a very public venue for self expression. These developments have led to an explosion in consumer interest for video content delivered over the Internet.
At present, websites deliver millions of hours of video content to hundreds of millions of users each month. Some popular websites, such as YouTube™ (www.youtube.com), are entirely focused on delivering video content to users. Other popular websites, such as CNN™ (www.cnn.com), supplement traditional news and non-video content with short video clips or segments of special interest. Consumer interest in video content is so great that few popular websites have remained popular while providing no video content whatsoever.
Notwithstanding the many websites that deliver enormous amounts of video content online to users, delivery of video content is still an expensive proposition. Delivering large video content files over the Internet tends to place a substantial processing load on the network infrastructure communicating such content as well as web servers transmitting such content to users (relative to delivering text or static image content). This burden is especially great on network infrastructures employing wireless technology, since wireless networks generally offer lower communication throughput than wired networks and wireless networks generally suffer from greater packet loss and location-dependent throughput than wired networks.
For example, a typical still image rendered within a webpage may be 200 Kilobytes in length and a full-length text article may be 10 Kilobytes in length. By contrast, a five-minute video segment may be anywhere from several Megabytes to 100 Megabytes or more, depending on the content and resolution of the video as well as the compression technology used to encode the video. Since network bandwidth and web server capacity are finite, and additional network bandwidth and web server capacity can be expensive to a video content provider, larger video files burden a network and web server infrastructure more than smaller text or still image content.
As a result of this burden, fewer users can be served by the network and web server infrastructure when serving video content relative to the number of users that can be served by the same network and web server infrastructure delivering text or still image content. Thus, companies that seek to appeal to a large user community either face increasing their content delivery capacity or risk losing users if their website seems slow due to overloaded web servers or an overloaded network infrastructure. Since customer loss can be fatal to a web business, most companies opt to increase their content delivery capacity as their customer base grows.
FIG. 1 illustrates a prior art system 100 capable of delivering video content to users utilizing Internet-connected devices. As shown, system 100 comprises user Internet-connected device 102, Internet 104, web server 106, database 112, and mass storage 114. User Internet-connected device 102 is coupled to Internet 104 through network connection 108. Web server 106 is coupled to the Internet 104 through network connection 110. Web server 106 is coupled to database 112 and mass storage 114 through couplings 116 and 118, respectively.
Generally, system 100 operates as follows: A user makes a request to view content on their Internet-connected device from a website served by hardware and software configured to respond to that request, shown collectively in FIG. 1 as web server 106, database 112, and mass storage 114. The user makes such a request by initiating a content request through user Internet-connected device 102, which transmits the content request through network connection 108, Internet 104, and network connection 110 to web server 106.
Upon receiving the content request, web server 106 determines which file stored in mass storage 114 corresponds to the requested content. Data relating to this correspondence, as well as other data relating to how many times each video has been requested and which content files are popular, may be stored in database 112. Once web server 106 has identified the file stored in mass storage 114 that corresponds to the requested content, web server 106 retrieves that file from mass storage 114 and transmits the file to user Internet-connected device 102 through the aforementioned series of network connections. Upon receiving the requested content from web server 106, user Internet-connected device 102 may render the requested content in a web browser or other video rendering software application.
Although the system illustrated in FIG. 1 merely shows a single user Internet-connected device and a single web server, more complex systems are readily apparent. For example, a large number of users may attempt to access a particular website through their respective Internet-connected devices within a short period of time. If the number of concurrent users is sufficiently large, the requests made by those users may exceed the response capacity of a single web server or of the network infrastructure.
Some middleware services provide content caching between user Internet-connected devices and web servers. These middleware services may also optimize the content prior to transmitting it to the user Internet-connected device so that faster download times may be achieved by the user Internet-connected device. Employing a middleware service to optimize and deliver content while still relying on a web server to dynamically generate webpages and perform complex processing can allow the combination of a web server and a middleware service to serve more users, for a given network infrastructure, than a web server without a middleware service.
Although the benefits of a middleware service are apparent, many popular websites serving video content are unable to benefit from conventional content caching because these websites utilize “dynamic URLs” to refer to video content. Dynamic URLs represent a “link” (i.e., a reference) to video content, where the link is only valid under certain conditions. One such condition can be that the referenced content is referenced within a specific period of time. Another such condition can be that only certain users may reference that content. Yet another such condition may be that only users in certain geographic regions can reference that content. Other conditions are possible.
If conditions imposed on viewing a particular piece of video content through a particular dynamic URL are not met, video content referenced by the dynamic URL is not available to the requesting user by that user referencing the dynamic URL. Instead, the video content provider may reject the user's request to access the particular piece of video content through the particular dynamic URL by displaying an “access denied” or “content not found” message. The same video content, however, may still be available through another dynamic URL if the conditions imposed on viewing the particular piece of video content through that other dynamic URL, such as time or geographic conditions discussed above, are met. The same video content may also be concurrently available through more than one dynamic URL at any given time.
Caching of video content referenced by dynamic URLs can lead to at least two inefficiencies in a middleware service that caches content. Both of these inefficiencies are related to indexing cached content based at least in part on the (dynamic) URL for the content.
First, use of dynamic URLs may lead to multiple cache entries corresponding to the same video content within the content cache, thereby reducing the capacity of the content cache to serve other, unique content to users. In this scenario, the content cache contains valid but redundant information, thereby reducing the efficiency of the content cache.
Second, use of dynamic URLs may lead to content cache entries with expired references to content, again reducing the useful capacity of the content cache. In contrast to the first scenario, this second scenario involves the content cache containing invalid information, rather than valid but redundant data. Therefore, for at least the reasons stated above, middleware services employing a content cache indexed at least in part by dynamic URLs provide inefficient solutions to website performance issues.